// 自己的写的简单版本的pinia持久化插件
import type { PiniaPluginContext } from 'pinia'
export function persistence(context: PiniaPluginContext) {
	const { store, options } = context
	// 是否开始本地存储
	if (!options.pgh) return
	// 取本地数据给pinia
	try {
		// 普通vue项目
		// const storage = window.localstorage.getItem(store.$id);
		// uni项目
		const storage = uni.getStorageSync(store.$id)
		if (storage) {
			// 普通vue项目
			// store.$patch(JSON.parse(storage));
			// uni项目
			store.$patch(storage)
		}
	} catch (error) {
		console.log(error)
	}
	// 在存储变化的时候执行
	store.$subscribe((_, state) => {
		console.log(_, state)
		console.log('在存储变化的时候执行', store.$id, store)
		// 普通vue项目
		// window.localstorage.setItem(store.$id, JSON.stringify(state));
		//  uni项目
		uni.setStorageSync(store.$id, state)
	})
}
